1. Field of the Invention
The present invention relates, in general, to video game development and communications between development tools and video game platforms, and, more particularly, to systems and methods for facilitating and simplifying data transfer and communications within a video game development system or network such as between video game development tools and multiple video game platforms.
2. Relevant Background
The video game market has moved from a smaller niche market to a multi-billion dollar market. The demand for new video games is growing rapidly as the size and demographics of game players continues to expand. Also, video games used to be made for only one or two game platforms, but now there is a demand for video games that can be sold on numerous platforms including standalone game consoles, computers, handheld portable gaming devices, and other electronic devices such as cellphones, digital music players, and personal digital assistants (PDAs). As a result, there is significant competition among game developers to create video games to meet the growing demand in a timely and efficient manner and, often, for these games to be able to run as desired on differing platforms or devices.
Large-scale, commercial video games are typically created by large development teams with the development process taking 1 to 3 years and costing millions of dollars. A typical development team may include producers to oversee production, game designers, artists, programmers, level designers, sound engineers, and testers with some team members handling more than one role. The development team works in a collaborative manner to create game content (or game assets) and game code, which together may be thought of as a game application, that can be run by a gaming engine on a particular game platform to provide the game to a player.
For example, programmers may write new source code, artists may develop game assets such as characters or scene objects, coloring schemes, textures, 3D models of game elements, and the like, sound engineers may develop sound effects and music, writers may create character dialog, and level designers may create advanced and eye-catching levels. To support these team members, numerous game development tools, such as Microsoft XNA, Maya from Autodesk, Inc., and the like, are now available for use in designing and creating game content including creating and modeling characters and even for defining game logic (e.g., how high a character jumps, how much life does a character gain or lose based on a game event, how fast does a character or game element move, and so on). However, typically a complete engine has to be purchased, which causes most game developers to try to build their own tools. Additionally, each video game console or platform developer typically will make a software development kit (or SDK or devkit) available to game developers, and each SDK may include applications or tools that are useful in creating new video games. Each SDK may also include a communications library and/or interface (e.g., platform communications data) to facilitate communications with a game platform (e.g., the platform running a game under current development or running a built game for testing or use by a developer to see how a new character, asset, game parameter, or the like is working in the game).
Currently, development tools used in the video game industry rarely communicate with each other and, if they do, the tools typically communicate and function using a one-to-one connection. Specifically, the tool communicates with a game running on a particular video game platform with a connection between the tool running on a developer's workstation and the game platform. For example, the development tool may generate a platform client on the workstation to provide an interface with the running game, and the tool may be required to manage a communication socket to support these communications. Each game platform typically utilizes differing interfacing and communication protocols (or at least have some differences), and each development tool is required to understand how to communicate with each game platform that may be used with the tool. Presently, a game developer may be working on a video game that needs to operate on more than one game platform, and the development for each platform often occurs along parallel paths as it is desirable (or required) for games to be released concurrently for each of the game platforms.
Hence, there remains a need for improved methods and systems for supporting communications during video game development. Preferably, such methods and systems would support and simplify communications between video game development tools and differing video game platforms.